package com.itbupt.domain.strategy.service;

import com.itbupt.domain.strategy.model.valobj.StrategyAwardStockKeyVO;

/**
 * @Author dingchang
 * @Date 2025/3/27 17:05
 * @Description: 抽奖库存相关服务，获取库存消耗队列
 * 扣减库存结束后，写到 redis 队列中的库存消耗数据，
 * 再由 trigger 中定时任务扫描获取 redis 队列数据，从而缓慢更新库表数据
 */
public interface IRaffleStock {

    /**
     * 获取奖品库存消耗队列数据
     * @return 奖品库存Key信息
     */
    StrategyAwardStockKeyVO takeQueueValue() throws InterruptedException;

    /**
     * 更新奖品库存消耗记录
     * @param strategyId 策略ID
     * @param awardId 奖品ID
     */
    void updateStrategyAwardStock(Long strategyId, Integer awardId);

}
